<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name=Generator content="Writeup v 1.99.06 (2012-04-23)" />
<style type="text/css">table.borders {border-width: 2px; border-spacing:2px; border-style:outset; border-color:gray;}
table.borders th, table.borders td {border-width:1px; padding:1px 5px; border-style:inset; vertical-align:top;}
table.borders th {background-color:#DDD;}
table.borders tbody th {text-align:left;}
table.borders p, table.borders ul, table.borders ol {margin-top:0; margin-bottom:0;}
h1 {color:darkblue; border-bottom:solid windowtext 1.0pt; padding:0in 0in 1.0pt 0in;}
div.plainlist {margin-left:40px;}</style>
<title>README.txt file for Content Staging module</title></head><body>


<h1>README.txt file for Content Staging module</h1>

<h2>Introduction</h2>
<p>This module allows the content for a site to be kept in a separate staging repository. This will typically be a Subversion or Git repository where the content has been committed and is being maintained.</p>
<p>The module checks out the content directly into the nodes of the site from whatever branch of the repository it is associated with. It is possible to have multiple sites associated with different branches so that future or experimental versions of content can be previewed and tested before being committed to live.</p>
<ul><li>The text can be stored in the repository in html</li>
<li>However the preferred method is to use the Writeup format (a kind of enhanced Markdown).
<ul><li>See: <a href="http://writeup.org/quickref">writeup.org/quickref</a></li></ul></li>
<li>Variables within the text file can control the process of updating the site from staging</li>
<li>A future enhancement will allow updating to take place in a cron job</li></ul>
<div style="margin-top: 36pt"></div>

<h2>Differences from other content staging modules</h2>
<table class="borders headboth"><thead>
<tr>
<th>Module </th>
<th>Method </th>
<th>Status </th></tr>
</thead><tbody>
<tr>
<th><a href="http://drupal.org/project/publish">publish</a> </th>
<td>Push and pull models, using XML-RPC </td>
<td>Seems to be inactive </td></tr>
<tr>
<th><a href="http://drupal.org/project/deploy">deploy</a> </th>
<td>Sophisticated model using services, sponsored by Al Jazeera </td>
<td>Under active development.</td></tr>
</tbody></table>

<p>The Content Staging module is much simpler than the above and is intended to be used in an environment where much of the content is not created directly online (using Drupal as an editing tool). Instead it is created offline, using a text editor or some other tool and then committed to the content repository. The Content Staging module then checks out the appropriate branch into the Drupal website(s), running the text through the Writeup pre-processor as it does this.</p>
<p>Although this may be initially more work to set up, the result is robust and performant, and gives a fine-grained level of version control over the content, especially in a situation of multiple authorship. In short, all the sophistication that we expect for managing the version control of code is now available for content.</p>

<h3>Discussions within the Drupal community</h3>
<p>The following discussions are taking place:</p>
<ul><li>Drupalcon London: <a href="http://london2011.drupal.org/conference/sessions/content-staging-and-deployments-drupal-7">Content Staging and Deployments in Drupal 7</a></li>
<li class="newline"><a href="http://groups.drupal.org/large-scale-drupal-lsd-projects-and-plans">Large Scale Drupal (LSD) - Projects and Plans</a></li>
<li class="newline"><a href="http://groups.drupal.org/large-scale-drupal-lsd-projects-and-plans/content-staging">Content Staging Initiative (CSI)</a></li>
<li class="newline"><a href="http://groups.drupal.org/taxonomy/term/64088">Staging Content to Production Servers</a></li>
<li class="newline">Denver BOF on <a href="http://denver2012.drupal.org/bof/content-staging-drupal-7">Content Staging in Drupal 7</a></li></ul>

<h2>Configuration</h2>
<ol type="1" style="list-style-type:decimal;"><li>Install the module</li>
<li>Download the Writeup binary from one of:
<ul><li>https://writeup.googlecode.com/svn/bin/writeup</li>
<li>http://writeup.sourceforge.net</li></ul>
<div>And copy it to your server, e.g. into the directory <code>/opt/writeup</code></div></li>
<li>Set up your repository to check out the content into the content staging area, e.g.
<ul><li><code>svn co https://mycontent.googlecode.com/svn/trunk /var/www/d7/staging</code></li>
<li>make sure the web server has write access to the staging directory if you want it to run updates</li></ul></li>
<li>Go to <code>admin/Content Staging</code> and set
<ul><li>the path to the Writeup binary, e.g. <code>/opt/writeup</code></li>
<li>the root directory of your content staging area, e.g. <code>staging</code></li>
<li>the update script for updating from the staging repo, e.g. <code>svn up</code></li></ul></li>
<li>Visit the status page: <code>/cs_status</code> to view the status of your content and to update the site</li>
<li>Note that nodes in staging are mapped to nodes on the site by the page alias == path/filename
<ul><li>e.g. the file <code>about/me.txt</code> will map to the node with the alias <code>about/me</code></li>
<li>At least for now, all nodes have to be created manually initially (with no content or title needed) for the content to be pushed to them. It is hoped that this limitation will be addressed in a future release.</li></ul></li></ol>

<h2>Documentation</h2>
<ul><li>More documentation to follow.</li></ul>

<h2>To Do</h2>
<ul><li>Create nodes automatically on the server when new nodes appear in staging</li>
<li>Add drush support</li></ul>

<h2>Support</h2>
<p>If you experience a problem with Content Staging or have a problem, file a request or issue on the Content Staging queue at <a href="http://drupal.org/project/issues/content_staging">drupal.org/project/issues/content_staging</a>. <strong>Do not post in the forums</strong>. Posting in the issue queues is a direct line of communication with the module authors.</p>
<p>No guarantee is provided with this software, no matter how critical your information, module authors are not responsible for damage caused by this software or obligated in any way to correct problems you may experience.</p>

<h2>Sponsors</h2>
<p>The Content Staging module is sponsored by <a href="http://loveintruth.com">Love in Truth</a>.</p>
<p>Licensed under the GPL 2.0.<br />
<a href="http://www.gnu.org/licenses/gpl-2.0.txt">www.gnu.org/licenses/gpl-2.0.txt</a></p>


</body></html>
